package day03;

import jdk.nashorn.internal.ir.Flags;

//运算符的演示
public class OperDemo {
    public static void main(String[] args) {
        /**
         *  1.算术运算符：+，-，*，/，%，++，--
         *             1）%：取模/取余，余数为0即为整除
         *             2）++/--
         *               2.1)单独使用时，在前在后都一样
         *               2.2）被使用时，在前在后不一样
         *                    a++的值为a
         *                    ++a的值为a+1







        /*
        System.out.println(5%2); //1,  商2余1
        System.out.println(8%2); //0   整除
        System.out.println(2%8); //2






        int a=5,b=5;
        a++;
        ++b;
        System.out.println(a); //6
        System.out.println(b); //6







        int a=5,b=5;
        int c=a++;  //将a++的值赋值给c，同时a自增1
        //简便记法：a++的值为5，所以c就为5
        int d=++b;  //将++b的值6赋给d,同时b自增1
        //简便记发，++b的值为5，所以d就为6
        System.out.println(a); //6
        System.out.println(b); //6
        System.out.println(c); //5
        System.out.println(d); //6





        int a=5,b=5;
        System.out.println(a++); //5
        System.out.println(a); //6
        System.out.println(++b); //6
        System.out.println(b); //6







        int a=5,b=5;
        int c=a--;
        int d=--b;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);






        1）>(大于)，<(小于)
        >=(大于等于)，<=(小于等于)
        ==(等于)，!=(不等于)

        2）关系运算的结果为boolean类型
        关系成立为true,关系不成立为false






        int a=5,b=10,c=5;
        boolean b1=a>b;

        System.out.println(b1); //false
        System.out.println(c<b); //true
        System.out.println(a>=c); //true
        System.out.println(a<=b); //true
        System.out.println(a==c); //true
        System.out.println(a!=c); //false
        System.out.println(a%2==0); //false
        System.out.println(a++>5); //false
        System.out.println(++a>5); //true
        System.out.println(a++>5); //true
        System.out.println(a); //8









        3.逻辑运算符
         1）&&：逻辑与（并且）
         -----当第一个条件为false时，发生短路（后面的就不执行了）
           ||：逻辑或(或者)
         -----当第一个条件为true时，发生短路(后面的就不执行了)
           !:逻辑非(取反)
         2）逻辑运算是建立在关系运算的基础之上的
            逻辑运算结果也是boolean型





        int a=5,b=10,c=5;
        boolean b1 = b>=a && b<c;
        System.out.println(b1); //false
        System.out.println(b<=c && b>a); //false
        System.out.println(a==b && b<a); //false
        System.out.println(b!=c && b>a); //true


        int age=99;
        System.out.println(age>=18 && age<=50); //年龄在18到50之间
        int  score = 86;
        System.out.println(score>=0 && score<=100); //成绩在0到100之间







        int score = 90;//成绩不合法验证
        System.out.println(score<0 || score>100); //成绩不合法验证






        int a=5,b=10,c=5;
        boolean b2 = !(a<b);
        System.out.println(b2); //false
        System.out.println(!(a>b)); //true







        int a=5,b=10,c=5;
        boolean b3 = a>b && c++>2;
        System.out.println(b3); //false
        System.out.println(c); //5,   发生短路了


         int a=5,b=10,c=5;
         boolean b3 = a<b || c++>2;
         System.out.println(b3); //true
         System.out.println(c); //5,   发生短路了


         4.赋值运算符
           1）简单赋值运算符：=
           2）扩展赋值运算符：+=，-=，*=，/=，%=
           3)注意：扩展赋值运算符自带强转功能



         int a=5;
         a+=10;
        System.out.println(a);
        a*=2;
        System.out.println(a);
        a/=6;
        System.out.println(a);


        小面试题
        short s=5;
        //s=s+10; //编译错误，需强转，改为：s=(short)(s+10);
        s+=10; //相当于s=(short)(s+10);


         5.字符串链接运算符

         char:字符型，单引号中，1个
         string:字符串型，双引号中，0个到多个

         1）+;
          1.1)若两边为数字，则做加法运算
          1.2）若两边出现了字符串，则做字符串链接
          1.3)任何类型的数据与字符串项链，结果都是字符串类型

        int age = 39 ;
        System.out.println(age); //39
        System.out.println("age="+age); //age=39
        System.out.println("我今年"+age+"岁了"); //我今年39岁了
        String name = "WKJ" ;
        System.out.println("大家好，我叫"+name+"，我今年"+age+"岁了");//大家好，我叫WKJ



        int age =23;
        System.out.println(age); //23
        System.out.println("age"+age); //age=23
        System.out.println("我今年"+age+"岁了"); //我今年23岁了
        String name = "Jones";
        String home = "天津市";
        System.out.println("大家好，我叫"+name+"，我今年"+age+"岁了"+"，我住在"+home);


        System.out.println(10+20+""+30); //3030-----String
        System.out.println(""+10+20+30); //102030---String
        System.out.println(10+20+30+""); //60-------String


        6.条件/三目运算符：
         1）语法：boolean？数1：数2
         2）执行过程：
            整个表达式是有值的，它的值要么是？号的数1，要么是：号后的数2
            计算boolean的值
              若为true,  则整个表达式的结果为?号后的数1
              若为false， 则整个表达式的结果为:号的数2



        int num = 5;
        int flag = num>0?1:-1;
        System.out.println(flag);




        //找两个数中的最大值

        int a=8,b=5;
        int max=a>b?a:b;
        System.out.println(max);

         */



    }
}
